/*
 * misc.java
 *
 * Created on 20080609
 */

package deweb.cimaplanning;

/**
 * Desarrollos Web http://www.desarrollosweb.com
 *
 * @author  camaleon
 * @version 0.01
 */


public class misc {
	//return ajax headers
	public static final int OK 				= 0x001;	//missing data
	public static final int MISSING_DATA	= 0x002;	//missing data
	public static final int ERROR			= 0x003; 	//data produces some error
	public static final int DEBUG			= 0x004; 	//debug mode

	//paquete
	public static final String classPackage	= "deweb.cimaplanning";			//paquete principal

	//edit actions
	public static final int ADD	= 0x000001;							//agregar registro
	public static final int DEL	= 0x000002;							//borrar registro
	public static final int UPD	= 0x000003;							//actualizar registro
	public static final int SRC	= 0x000004;							//buscar registro
	public static final int OTH	= 0x000005;							//otros
	
	//orden de busqueda
	public static final String ASC		= "ASC";
	public static final String DESC		= "DESC";

	//varios HTML
	public static final String NBSP		= "&nbsp;";					//No breaking space
	public static final String UARR		= "&uarr;";					//'UPWARDS ARROW' (U+2191)
	public static final String DARR		= "&darr;";					//'DOWNWARDS ARROW' (U+2193)
	public static final String UTGLE	= "&#x25b2;";				//'BLACK UP-POINTING TRIANGLE' (U+25B2)
	public static final String DTGLE	= "&#x25bc;";				//'BLACK DOWN-POINTING TRIANGLE' (U+25BC)
	public static final String BR		= "<BR>";					//salto de linea
	
	//
	public static final String ENTER	= "\r\n";					//enter
	
	//valores para tabla Parametros
	
	
	//valores de componentes
	public static final String ALL					= "ALL";				//Todas las opciones
	
	
	//estos valores deberan tomarse del archivo de configuracion
	public static final int MAX_VERSIONS_TO_LIST	= 50;			//numero de versiones a listar
	
	//Valores de costos fijas necesarios para algunos calculos
	public static final String USD_PER_TON			= "$_TON";		//precio de maíz por tonelada
	public static final String BUS_PER_TON			= "$_BUS";		//precio de maíz por bushels
	public static final String LOSS_FUTURES			= "FUT_P";		//perdida de futuros
	public static final String FUTURES				= "FUT";		//costo de futuros
	public static final String WAREHOUSE_IN			= "ALM_E";		//entrada a almacen
	public static final String WAREHOUSE_OUT		= "ALM_S";		//salida a almacen
	public static final String WAREHOUSE_MONTH		= "ALM_M";		//mensualidad a almacen
	
	//Datasourcename para pool de JD
	public static final String DS_NAME	= "cornpp";
	

    /** Metodo para determinar si es la celda de orden y su dirección 
    * @param 
    * @param 
    * @param 
    */
    public static String setOrder(int col, int order, String dir) {
    	String results = "";
    	
    	if (col == order){
    		results = NBSP + (dir.equals(ASC) ? UTGLE : DTGLE);
    	}

    	return results;
    }
    
    /** Metodo para determinar si es la celda de orden y su direccion 
     * @param 
     * @param 
     * @param 
     */
     public static String setOrderCP(int col, int order, String dir) {
     	String results = "";
     	
     	if (col == order){
     		results = NBSP + (dir.equals(ASC) ? "<img alt=\"Descendente\" src=\"images/arrow_down.gif\" border=\"0\"/>" : "<img alt=\"Ascendente\" src=\"images/arrow_up.gif\" border=\"0\"/>");
     	}

     	return results;
     }

    /** Metodo de converción de 'fecha de usuario' a fecha para SQL
    * @param fecha fecha a convertir (dd/mm/yyyy hh:mm:ss)
    */
    public static String changeDate(String fecha) {
    	String results = "";

    	results = fecha.substring(3, 5) + "/" +
    				fecha.substring(0, 2) + "/" +
    				fecha.substring(6);

    	return results;
    }
    
    /** Metodo de extracción nombre de la página
    * @param URI de la pagina ejecutada.
    */
    public static String getPage(String uri) {
    	String results = "";
    	
		results = uri.substring(uri.lastIndexOf("/") + 1); //page.jsp
		
    	return results;
    }

    /** Metodo de extracción nombre de la página sin extencion
    * @param URI de la pagina ejecutada.
    */
    public static String getPageNoExt(String uri) {
    	String results = "";
    	
    	results = getPage(uri);
    	results = results.substring(0, results.indexOf("."));	//page[.jsp]
    	
    	return results;
    }
    
    /** Metodo para evaluacion del valor de la variable y regresar "vacio" si este es cero
     * @param value a verificar y convertir
     */
    public static String returnValue(double value){
    	return returnValue(value, true);
    }
    public static String returnValue(double value, boolean nbsp){
    	return (value == 0 ? (nbsp ? misc.NBSP : "") : "" + value);
    }

}